package List_etc.Exer.CalculateTimesOfWord;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

/**
 * @author Jimmy Zhan WORKSTATION
 * @date 2023/3/21 15:02
 * 说明：
 */

public class CalculateTest {
    public static void main(String[] args) {
        ArrayList list = new ArrayList();
        // 获取长度为30的随机小写字母列表
        for (int i = 0; i < 30; i++) {
            // 0. 先明确差值是25，因为[0,25]，同时+97 = [97,122]，但是右开，取[97,123)
            // 1. Math.random()返回[0,1)
            // 2. 122-97求差值，+1是为了弥补左闭右开的右开，返回[0,26)
            // 3. 最后再+97偏移，得到[97,123)
            // 4. 强转成char，再+""转换成String类型
            list.add((char)(Math.random() * (122-97+1)+97) + "");
        }

        System.out.println(list);

        System.out.println("a: " + listTest(list, "a"));
        System.out.println("b: " + listTest(list, "b"));
        System.out.println("c: " + listTest(list, "c"));
        System.out.println("x: " + listTest(list, "x"));
    }

    public static int listTest(Collection list, String s){
        int count = 0;
        Iterator iterator = list.iterator();
        while (iterator.hasNext()){
            Object next = iterator.next();
            // String 中， == 比较引用地址是否相同， equals() 比较内容是否相同
            if (s.equals(next)){
                count++;
            }
        }
        return count;
    }

}
